home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / modules.lha / modules / libraries / amigaguide.m < prev    next >
Encoding:
Text File  |  2000-06-04  |  5.1 KB  |  165 lines

  1. MODULE    'exec/lists',
  2.             'exec/nodes',
  3.             'exec/semaphores',
  4.             'intuition/intuition',
  5.             'intuition/screens',
  6.             'intuition/classusr',
  7.             'dos/dos',
  8.             'utility/tagitem'
  9.  
  10. ENUM    APSH_TOOL_ID        =11000,
  11.         StartupMsgID        =APSH_TOOL_ID+1,
  12.         LoginToolID            =APSH_TOOL_ID+2,
  13.         LogoutToolID        =APSH_TOOL_ID+3,
  14.         ShutdownMsgID        =APSH_TOOL_ID+4,
  15.         ActivateToolID        =APSH_TOOL_ID+5,
  16.         DeactivateToolID    =APSH_TOOL_ID+6,
  17.         ActiveToolID        =APSH_TOOL_ID+7,
  18.         InactiveToolID        =APSH_TOOL_ID+8,
  19.         ToolStatusID        =APSH_TOOL_ID+9,
  20.         ToolCmdID            =APSH_TOOL_ID+10,
  21.         ToolCmdReplyID        =APSH_TOOL_ID+11,
  22.         ShutdownToolID        =APSH_TOOL_ID+12
  23.  
  24. ENUM    AGA_Dummy            =TAG_USER,
  25.         AGA_Path                =AGA_Dummy+1,
  26.         AGA_XRefList        =AGA_Dummy+2,
  27.         AGA_Activate        =AGA_Dummy+3,
  28.         AGA_Context            =AGA_Dummy+4,
  29.         AGA_HelpGroup        =AGA_Dummy+5,
  30.         AGA_Reserved1        =AGA_Dummy+6,
  31.         AGA_Reserved2        =AGA_Dummy+7,
  32.         AGA_Reserved3        =AGA_Dummy+8,
  33.         AGA_ARexxPort        =AGA_Dummy+9,
  34.         AGA_ARexxPortName    =AGA_Dummy+10
  35.  
  36. OBJECT AmigaGuideMsg
  37.     Msg:MN,                    /* Embedded Exec message structure */
  38.     Type:ULONG,                /* Type of message */
  39.     Data:APTR,                /* Pointer to message data */
  40.     DSize:ULONG,            /* Size of message data */
  41.     DType:ULONG,            /* Type of message data */
  42.     Pri_Ret:ULONG,            /* Primary return value */
  43.     Sec_Ret:ULONG,            /* Secondary return value */
  44.     System1:APTR,
  45.     System2:APTR
  46.  
  47. /* Allocation description structure */
  48. OBJECT NewAmigaGuide
  49.     Lock:BPTR,                    /* Lock on the document directory */
  50.     Name:PTR TO CHAR,            /* Name of document file */
  51.     Screen:PTR TO Screen,    /* Screen to place windows within */
  52.     PubScreen:PTR TO CHAR,    /* Public screen name to open on */
  53.     HostPort:PTR TO CHAR,    /* Application's ARexx port name */
  54.     ClientPort:PTR TO CHAR,    /* Name to assign to the clients ARexx port */
  55.     BaseName:PTR TO CHAR,    /* Base name of the application */
  56.     Flags:ULONG,                /* Flags */
  57.     Context:PTR TO CHAR,        /* NULL terminated context table */
  58.     Node:PTR TO CHAR,            /* Node to align on first (defaults to Main) */
  59.     Line:LONG,                    /* Line to align on */
  60.     Extens:PTR TO TagItem,    /* Tag array extension */
  61.     Client:VOID                    /* Private! MUST be NULL */
  62.  
  63. /* public Client flags */
  64. FLAG    HT_LOAD_INDEX,            /* Force load the index at init time */
  65.         HT_LOAD_ALL,            /* Force load the entire database at init */
  66.         HT_CACHE_NODE,            /* Cache each node as visited */
  67.         HT_CACHE_DB,            /* Keep the buffers around until expunge */
  68.         HT_UNIQUE=15,            /* Unique ARexx port name */
  69.         HT_NOACTIVATE            /* Don't activate window */
  70.  
  71. CONST    HTFC_SYSGADS=$80000000
  72.  
  73. /* Callback function ID's */
  74. ENUM    HTH_OPEN,
  75.         HTH_CLOSE
  76.  
  77. CONST    HTERR_NOT_ENOUGH_MEMORY    =100,
  78.         HTERR_CANT_OPEN_DATABASE=101,
  79.         HTERR_CANT_FIND_NODE        =102,
  80.         HTERR_CANT_OPEN_NODE        =103,
  81.         HTERR_CANT_OPEN_WINDOW    =104,
  82.         HTERR_INVALID_COMMAND    =105,
  83.         HTERR_CANT_COMPLETE        =106,
  84.         HTERR_PORT_CLOSED            =107,
  85.         HTERR_CANT_CREATE_PORT    =108,
  86.         HTERR_KEYWORD_NOT_FOUND    =113
  87.  
  88. /* Cross reference node */
  89. OBJECT XRef
  90.     Node:LN,                    /* Embedded node */
  91.     pad:UWORD,                /* Padding */
  92. //    DF:PTR TO DocFile,    /* Document defined in */
  93.     DF:PTR TO CHAR,        /* Document defined in */
  94.     File:PTR TO CHAR,        /* Name of document file */
  95.     Name:PTR TO CHAR,        /* Name of item */
  96.     Line:LONG                /* Line defined at */
  97.  
  98. /* Types of cross reference nodes */
  99. ENUM    XR_GENERIC,
  100.         XR_FUNCTION,
  101.         XR_COMMAND,
  102.         XR_INCLUDE,
  103.         XR_MACRO,
  104.         XR_STRUCT,
  105.         XR_FIELD,
  106.         XR_TYPEDEF,
  107.         XR_DEFINE 
  108.  
  109. /* Callback handle */
  110. OBJECT AmigaGuideHost
  111.     Dispatcher:Hook,        /* Dispatcher */
  112.     Reserved:ULONG,        /* Must be 0 */
  113.     Flags:ULONG,
  114.     UseCnt:ULONG,            /* Number of open nodes */
  115.     SystemData:APTR,        /* Reserved for system use */
  116.     UserData:APTR            /* Anything you want... */
  117.  
  118. /* Methods */
  119. CONST    HM_FINDNODE=1,
  120.         HM_OPENNODE=2,
  121.         HM_CLOSENODE=3,
  122.         HM_EXPUNGE=10        /* Expunge DataBase */
  123.  
  124. /* HM_FINDNODE */
  125. OBJECT opFindHost
  126.     MethodID:ULONG,
  127.     Attrs:PTR TO TagItem,    /*  R: Additional attributes */
  128.     Node:PTR TO CHAR,            /*  R: Name of node */
  129.     TOC:PTR TO CHAR,            /*  W: Table of Contents */
  130.     Title:PTR TO CHAR,        /*  W: Title to give to the node */
  131.     Next:PTR TO CHAR,            /*  W: Next node to browse to */
  132.     Prev:PTR TO CHAR            /*  W: Previous node to browse to */
  133.  
  134. /* HM_OPENNODE, HM_CLOSENODE */
  135. OBJECT opNodeIO
  136.     MethodID:ULONG,
  137.     Attrs:PTR TO TagItem,    /*  R: Additional attributes */
  138.     Node:PTR TO CHAR,            /*  R: Node name and arguments */
  139.     FileName:PTR TO CHAR,    /*  W: File name buffer */
  140.     DocBuffer:PTR TO CHAR,    /*  W: Node buffer */
  141.     BuffLen:ULONG,                /*  W: Size of buffer */
  142.     Flags:ULONG                    /* RW: Control flags */
  143.  
  144. /* onm_Flags */
  145. FLAG    HTNF_KEEP,            /* Don't flush this node until database is closed. */
  146.         HTNF_RESERVED1,    /* Reserved for system use */
  147.         HTNF_RESERVED2,    /* Reserved for system use */
  148.         HTNF_ASCII,            /* Node is straight ASCII */
  149.         HTNF_RESERVED3,    /* Reserved for system use */
  150.         HTNF_CLEAN,            /* Remove the node from the database */
  151.         HTNF_DONE            /* Done with node */
  152.  
  153. /* onm_Attrs */
  154. CONST    HTNA_Dummy        =TAG_USER,
  155.         HTNA_Screen        =HTNA_Dummy+1,    /* (struct Screen *) Screen that window resides in */
  156.         HTNA_Pens        =HTNA_Dummy+2,    /* Pen array (from DrawInfo) */
  157.         HTNA_Rectangle    =HTNA_Dummy+3,    /* Window box */
  158.         HTNA_HelpGroup    =HTNA_Dummy+5    /* (ULONG) unique identifier */
  159.  
  160.  
  161. /* HM_EXPUNGE */
  162. OBJECT opExpungeNode
  163.     MethodID:ULONG,
  164.     Attrs:PTR TO TagItem        /*  R: Additional attributes */
  165.